package com.ruoyi.common.mybatis.core.util;

import cn.hutool.core.util.StrUtil;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

public class WebFrameworkUtils {

    /**
     * 登录用户
     */
    private static final String REQUEST_ATTRIBUTE_LOGIN_USER_ID = "login_user_id";

    public static Long getLoginUserId(HttpServletRequest request,String userIdAttr) {
        if (request == null) {
            return null;
        }
        if (StrUtil.isEmpty(userIdAttr)){
            userIdAttr = REQUEST_ATTRIBUTE_LOGIN_USER_ID;
        }
        return (Long) request.getAttribute(userIdAttr);
    }

    public static Long getLoginUserId(String userIdAttr) {
        HttpServletRequest request = getRequest();
        return getLoginUserId(request,userIdAttr);
    }

    public static HttpServletRequest getRequest() {
        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        if (!(requestAttributes instanceof ServletRequestAttributes)) {
            return null;
        }
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
        return servletRequestAttributes.getRequest();
    }

}
